5
תגובות

משתנה static כמחלקה

פתח ilikeme ,
למה הם לא עושים שיהיה אפשר להגדיר משתנה static בתור מחלקה
יש פתרון לדבר הזה?
אני לא מתכוון עכשיו לעשות משתנה פשוט... אין לזה פתרון?

<?php

class Database
{
    private static $instance = new Database();
   
    public static function getInstance()
    {
        return Database::$instance;
    }
}

?>

5 תשובות

avatar ענה iiddaannyy ב 15 לאפריל 2013 #

הבעיה הקוד שלך היא זה:

new Database()

ולא זה:
private static $instance

כי אין שום בעיה עם משתני מחלקה סטטיים.

avatar ענה Michael ב 15 לאפריל 2013 #

http://phpguide.co.il/database_singleton.htm

avatar ענה ilikeme ב 15 לאפריל 2013 #

@iiddaannyy אני יודע שזו הבעיה O.O שאלתי למה אי-אפשר להגדיר משתנה סטטי בתור מחלקה חדשה
ו@Michael תודה רבה! באמת שלא חשבתי על הרעיון הזה ולבדוק אם המשתנה שווה לNULL

avatar ענה iiddaannyy ב 15 לאפריל 2013 #

-_- הייתי בטוח שהשאלה שלך הייתה: "למה הם לא עושים שיהיה אפשר להגדיר משתנה static בתוך מחלקה".

בכל מקרה, זה אותו הדבר גם עם המשתנים הלא הסטטיים.

avatar ענה OrelBeY ב 16 לאפריל 2013 #

This declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.

~ הדוקומנטציה של PHP

אתה יכול לאתחל מאפייני מחלקה רק עם ערכים קבועים, ולא עם ערכים כמו אובייקטים. זה קשר לעבודה של מפענח הקוד, יש שם שלבים שונים, ואתה לא יכול לדלג על אחד מהם.